package sv.gob.mh.dgii.eda.dec.commons;

import sv.gob.mh.dgii.common.Utils;

public enum TipoEstado {

    CORRECTA("C", "Correcta"), INDEFINIDA("I", "Indefinida"), POSTEADA("P",
    "Posteada"), ANULADA("A", "Anulada"), RECHAZADA("R", "Rechazada"), IMPOSIBLE(
    "M", "Imposible"), NO_OBLIGADO("N", "No obligado");
    private final String descripcion;
    private final String codigo;

    TipoEstado(String codigo, String descripcion) {
        this.codigo = codigo;
        this.descripcion = descripcion;

    }

    public String getCodigo() {
        return codigo;
    }

    public String getDescripcion() {
        return this.descripcion;
    }

    public static String getDescripcionByEstado(String estado) {
        if (!Utils.isNullOrEmpty(estado)) {

            if (estado.equals(CORRECTA.getCodigo())) {
                return CORRECTA.getCodigo() + "-" + CORRECTA.getDescripcion();
            }
            if (estado.equals(INDEFINIDA.getCodigo())) {
                return INDEFINIDA.getCodigo() + "-"
                        + INDEFINIDA.getDescripcion();
            }

            if (estado.equals(POSTEADA.getCodigo())) {
                return POSTEADA.getCodigo() + "-" + POSTEADA.getDescripcion();
            }
            if (estado.equals(ANULADA.getCodigo())) {
                return ANULADA.getCodigo() + "-" + ANULADA.getDescripcion();
            }
            if (estado.equals(RECHAZADA.getCodigo())) {
                return RECHAZADA.getCodigo() + "-" + RECHAZADA.getDescripcion();
            }
            if (estado.equals(IMPOSIBLE.getCodigo())) {
                return IMPOSIBLE.getCodigo() + "-" + IMPOSIBLE.getDescripcion();
            }
            if (estado.equals(NO_OBLIGADO.getCodigo())) {
                return NO_OBLIGADO.getCodigo() + "-"
                        + NO_OBLIGADO.getDescripcion();
            }
            return estado;

        } else {
            return "Sin estado";
        }

    }
}
